using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("NotificationManager")]
	public class NotificationManager : MonoBehaviour
	{
		public enum PopupTextType
		{
			BASIC,
			FANCY
		}

		[Attribute38("NotificationManager.QuoteSoundCallbackData")]
		public class QuoteSoundCallbackData : MonoClass
		{
			public Notification m_quote => method_3<Notification>("m_quote");

			public float m_durationSeconds => method_2<float>("m_durationSeconds");

			public bool m_persistCharacter => method_2<bool>("m_persistCharacter");

			public QuoteSoundCallbackData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public QuoteSoundCallbackData(IntPtr address)
				: this(address, "QuoteSoundCallbackData")
			{
			}
		}

		public static string KT_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "KT_PREFAB_PATH");

		public static string TIRION_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "TIRION_PREFAB_PATH");

		public static string NORMAL_NEFARIAN_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "NORMAL_NEFARIAN_PREFAB_PATH");

		public static string ZOMBIE_NEFARIAN_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "ZOMBIE_NEFARIAN_PREFAB_PATH");

		public static string RAGNAROS_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RAGNAROS_PREFAB_PATH");

		public static string MAJORDOMO_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "MAJORDOMO_PREFAB_PATH");

		public static string RENO_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RENO_PREFAB_PATH");

		public static string RENO_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RENO_BIG_PREFAB_PATH");

		public static string CARTOGRAPHER_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "CARTOGRAPHER_PREFAB_PATH");

		public static string ELISE_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "ELISE_BIG_PREFAB_PATH");

		public static string FINLEY_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "FINLEY_BIG_PREFAB_PATH");

		public static string BRANN_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "BRANN_BIG_PREFAB_PATH");

		public static string RAFAAM_WRAP_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RAFAAM_WRAP_PREFAB_PATH");

		public static string RAFAAM_WRAP_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RAFAAM_WRAP_BIG_PREFAB_PATH");

		public static string RAFAAM_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RAFAAM_BIG_PREFAB_PATH");

		public static string RAFAAM_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RAFAAM_PREFAB_PATH");

		public static string BRANN_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "BRANN_PREFAB_PATH");

		public static string BLAGGH_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "BLAGGH_PREFAB_PATH");

		public static string MEDIVH_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "MEDIVH_PREFAB_PATH");

		public static string MEDIVH_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "MEDIVH_BIG_PREFAB_PATH");

		public static string MEDIVAS_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "MEDIVAS_BIG_PREFAB_PATH");

		public static string MOROES_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "MOROES_PREFAB_PATH");

		public static string MOROES_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "MOROES_BIG_PREFAB_PATH");

		public static string CURATOR_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "CURATOR_PREFAB_PATH");

		public static string CURATOR_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "CURATOR_BIG_PREFAB_PATH");

		public static string BARNES_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "BARNES_PREFAB_PATH");

		public static string BARNES_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "BARNES_BIG_PREFAB_PATH");

		public static string AYA_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "AYA_BIG_PREFAB_PATH");

		public static string HANCHO_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "HANCHO_BIG_PREFAB_PATH");

		public static string KAZAKUS_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "KAZAKUS_BIG_PREFAB_PATH");

		public static string LICHKING_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "LICHKING_PREFAB_PATH");

		public static string TIRION_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "TIRION_BIG_PREFAB_PATH");

		public static string AHUNE_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "AHUNE_BIG_PREFAB_PATH");

		public static string RAGNAROS_BIG_PREFAB_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "NotificationManager", "RAGNAROS_BIG_PREFAB_PATH");

		public static float DEPTH => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "NotificationManager", "DEPTH");

		public static Vector3 LEFT_OF_FRIENDLY_HERO => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "LEFT_OF_FRIENDLY_HERO");

		public static Vector3 RIGHT_OF_FRIENDLY_HERO => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "RIGHT_OF_FRIENDLY_HERO");

		public static Vector3 LEFT_OF_ENEMY_HERO => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "LEFT_OF_ENEMY_HERO");

		public static Vector3 RIGHT_OF_ENEMY_HERO => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "RIGHT_OF_ENEMY_HERO");

		public static Vector3 DEFAULT_CHARACTER_POS => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "DEFAULT_CHARACTER_POS");

		public static Vector3 ALT_ADVENTURE_SCREEN_POS => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "ALT_ADVENTURE_SCREEN_POS");

		public static Vector3 PHONE_CHARACTER_POS => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "PHONE_CHARACTER_POS");

		public static float PHONE_OVERLAY_UI_CHARACTER_X_OFFSET => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "NotificationManager", "PHONE_OVERLAY_UI_CHARACTER_X_OFFSET");

		public GameObject speechBubblePrefab => method_3<GameObject>("speechBubblePrefab");

		public GameObject speechIndicatorPrefab => method_3<GameObject>("speechIndicatorPrefab");

		public GameObject bounceArrowPrefab => method_3<GameObject>("bounceArrowPrefab");

		public GameObject fadeArrowPrefab => method_3<GameObject>("fadeArrowPrefab");

		public GameObject popupTextPrefab => method_3<GameObject>("popupTextPrefab");

		public GameObject fancyPopupTextPrefab => method_3<GameObject>("fancyPopupTextPrefab");

		public GameObject dialogBoxPrefab => method_3<GameObject>("dialogBoxPrefab");

		public GameObject innkeeperQuotePrefab => method_3<GameObject>("innkeeperQuotePrefab");

		public List<Notification> notificationsToDestroyUponNewNotifier => method_3<Class271<Notification>>("notificationsToDestroyUponNewNotifier")?.method_25();

		public List<Notification> arrows => method_3<Class271<Notification>>("arrows")?.method_25();

		public List<Notification> popUpTexts => method_3<Class271<Notification>>("popUpTexts")?.method_25();

		public Notification popUpDialog => method_3<Notification>("popUpDialog");

		public Notification m_quote => method_3<Notification>("m_quote");

		public List<string> m_quotesThisSession => method_3<Class272>("m_quotesThisSession")?.method_25();

		public static float DEFAULT_QUOTE_DURATION => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "NotificationManager", "DEFAULT_QUOTE_DURATION");

		public Vector3 NOTIFICATION_SCALE => method_2<Vector3>("NOTIFICATION_SCALE");

		public Vector3 NOTIFICATION_SCALE_PHONE => method_2<Vector3>("NOTIFICATION_SCALE_PHONE");

		public static Vector3 NOTIFICATITON_WORLD_SCALE => MonoClass.smethod_14<Vector3>(TritonHs.MainAssemblyPath, "", "NotificationManager", "get_NOTIFICATITON_WORLD_SCALE", Array.Empty<object>());

		public bool IsQuotePlaying => method_11<bool>("get_IsQuotePlaying", Array.Empty<object>());

		public NotificationManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public NotificationManager(IntPtr address)
			: this(address, "NotificationManager")
		{
		}

		public static NotificationManager Get()
		{
			return MonoClass.smethod_15<NotificationManager>(TritonHs.MainAssemblyPath, "", "NotificationManager", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Start()
		{
			method_8("Start");
		}

		public Notification CreatePopupDialog(string headlineText, string bodyText, string yesOrOKButtonText, string noButtonText)
		{
			return method_15<Notification>("CreatePopupDialog", new Class276.Enum20[4]
			{
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.String
			}, new object[4] { headlineText, bodyText, yesOrOKButtonText, noButtonText });
		}

		public Notification CreatePopupDialog(string headlineText, string bodyText, string yesOrOKButtonText, string noButtonText, Vector3 offset)
		{
			return method_15<Notification>("CreatePopupDialog", new Class276.Enum20[5]
			{
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.ValueType
			}, new object[5] { headlineText, bodyText, yesOrOKButtonText, noButtonText, offset });
		}

		public Notification CreateSpeechBubble(string speechText, Actor actor)
		{
			return method_15<Notification>("CreateSpeechBubble", new Class276.Enum20[2]
			{
				Class276.Enum20.String,
				Class276.Enum20.Class
			}, new object[2] { speechText, actor });
		}

		public Notification CreateSpeechBubble(string speechText, Actor actor, bool bDestroyWhenNewCreated)
		{
			return method_15<Notification>("CreateSpeechBubble", new Class276.Enum20[3]
			{
				Class276.Enum20.String,
				Class276.Enum20.Class,
				Class276.Enum20.Boolean
			}, new object[3] { speechText, actor, bDestroyWhenNewCreated });
		}

		public Notification CreateSpeechBubble(string speechText, Notification.SpeechBubbleDirection direction, Actor actor)
		{
			return method_15<Notification>("CreateSpeechBubble", new Class276.Enum20[3]
			{
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.Class
			}, new object[3] { speechText, direction, actor });
		}

		public Notification CreateSpeechBubble(string speechText, Notification.SpeechBubbleDirection direction, Actor actor, bool bDestroyWhenNewCreated, bool parentToActor, float bubbleScale)
		{
			return method_15<Notification>("CreateSpeechBubble", new Class276.Enum20[6]
			{
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.Class,
				Class276.Enum20.Boolean,
				Class276.Enum20.Boolean,
				Class276.Enum20.R4
			}, new object[6] { speechText, direction, actor, bDestroyWhenNewCreated, parentToActor, bubbleScale });
		}

		public Notification CreateBouncingArrow(UserAttentionBlocker blocker, bool addToList)
		{
			return method_15<Notification>("CreateBouncingArrow", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean
			}, new object[2] { blocker, addToList });
		}

		public Notification CreateBouncingArrow(UserAttentionBlocker blocker, Vector3 position, Vector3 rotation)
		{
			return method_15<Notification>("CreateBouncingArrow", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType
			}, new object[3] { blocker, position, rotation });
		}

		public Notification CreateBouncingArrow(UserAttentionBlocker blocker, Vector3 position, Vector3 rotation, bool addToList, float scaleFactor)
		{
			return method_15<Notification>("CreateBouncingArrow", new Class276.Enum20[5]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean,
				Class276.Enum20.R4
			}, new object[5] { blocker, position, rotation, addToList, scaleFactor });
		}

		public Notification CreateFadeArrow(bool addToList)
		{
			return method_15<Notification>("CreateFadeArrow", new Class276.Enum20[1] { Class276.Enum20.Boolean }, new object[1] { addToList });
		}

		public Notification CreateFadeArrow(Vector3 position, Vector3 rotation)
		{
			return method_15<Notification>("CreateFadeArrow", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType
			}, new object[2] { position, rotation });
		}

		public Notification CreateFadeArrow(Vector3 position, Vector3 rotation, bool addToList)
		{
			return method_15<Notification>("CreateFadeArrow", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean
			}, new object[3] { position, rotation, addToList });
		}

		public Notification CreatePopupText(UserAttentionBlocker blocker, Transform bone, string text, bool convertLegacyPosition, PopupTextType popupTextType)
		{
			return method_15<Notification>("CreatePopupText", new Class276.Enum20[5]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.Class,
				Class276.Enum20.String,
				Class276.Enum20.Boolean,
				Class276.Enum20.ValueType
			}, new object[5] { blocker, bone, text, convertLegacyPosition, popupTextType });
		}

		public Notification CreatePopupText(UserAttentionBlocker blocker, Vector3 position, Vector3 scale, string text, bool convertLegacyPosition, PopupTextType popupTextType)
		{
			return method_15<Notification>("CreatePopupText", new Class276.Enum20[6]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.String,
				Class276.Enum20.Boolean,
				Class276.Enum20.ValueType
			}, new object[6] { blocker, position, scale, text, convertLegacyPosition, popupTextType });
		}

		public Notification CreateTirionQuote(string stringTag, string soundPath, bool allowRepeatDuringSession)
		{
			return method_15<Notification>("CreateTirionQuote", new Class276.Enum20[3]
			{
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.Boolean
			}, new object[3] { stringTag, soundPath, allowRepeatDuringSession });
		}

		public Notification CreateTirionQuote(Vector3 position, string stringTag, string soundPath, bool allowRepeatDuringSession)
		{
			return method_15<Notification>("CreateTirionQuote", new Class276.Enum20[4]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.Boolean
			}, new object[4] { position, stringTag, soundPath, allowRepeatDuringSession });
		}

		public Notification CreateKTQuote(string stringTag, string soundPath, bool allowRepeatDuringSession)
		{
			return method_15<Notification>("CreateKTQuote", new Class276.Enum20[3]
			{
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.Boolean
			}, new object[3] { stringTag, soundPath, allowRepeatDuringSession });
		}

		public Notification CreateKTQuote(Vector3 position, string stringTag, string soundPath, bool allowRepeatDuringSession)
		{
			return method_15<Notification>("CreateKTQuote", new Class276.Enum20[4]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.Boolean
			}, new object[4] { position, stringTag, soundPath, allowRepeatDuringSession });
		}

		public Notification CreateZombieNefarianQuote(Vector3 position, string stringTag, string soundPath, bool allowRepeatDuringSession)
		{
			return method_14<Notification>("CreateZombieNefarianQuote", new object[4] { position, stringTag, soundPath, allowRepeatDuringSession });
		}

		public void PlayBundleInnkeeperLineForClass(TAG_CLASS cardClass)
		{
			method_8("PlayBundleInnkeeperLineForClass", cardClass);
		}

		public Notification CreateCharacterQuote(string prefabPath, string text, string soundPath, bool allowRepeatDuringSession, float durationSeconds, CanvasAnchor anchorPoint)
		{
			return method_15<Notification>("CreateCharacterQuote", new Class276.Enum20[6]
			{
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.String,
				Class276.Enum20.Boolean,
				Class276.Enum20.R4,
				Class276.Enum20.ValueType
			}, new object[6] { prefabPath, text, soundPath, allowRepeatDuringSession, durationSeconds, anchorPoint });
		}

		public void ForceAddSoundToPlayedList(string soundPath)
		{
			method_8("ForceAddSoundToPlayedList", soundPath);
		}

		public void ForceRemoveSoundFromPlayedList(string soundPath)
		{
			method_8("ForceRemoveSoundFromPlayedList", soundPath);
		}

		public bool HasSoundPlayedThisSession(string soundPath)
		{
			return method_11<bool>("HasSoundPlayedThisSession", new object[1] { soundPath });
		}

		public void PlayBigCharacterQuote(Notification quote, string text, string soundPath, float durationSeconds, Vector3 position, bool useOverlayUI, bool persistCharacter, bool altPosition)
		{
			method_8("PlayBigCharacterQuote", quote, text, soundPath, durationSeconds, position, useOverlayUI, persistCharacter, altPosition);
		}

		public void PlayCharacterQuote(Notification quote, Vector3 position, string text, string soundPath, float durationSeconds, CanvasAnchor anchorPoint)
		{
			method_8("PlayCharacterQuote", quote, position, text, soundPath, durationSeconds, anchorPoint);
		}

		public void PlayQuoteWithoutSound(float durationSeconds)
		{
			method_8("PlayQuoteWithoutSound", durationSeconds);
		}

		public void OnQuoteSoundLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnQuoteSoundLoaded", assetRef, go, callbackData);
		}

		public void OnBigQuoteSoundLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnBigQuoteSoundLoaded", assetRef, go, callbackData);
		}

		public void DestroyAllArrows()
		{
			method_8("DestroyAllArrows");
		}

		public void DestroyAllPopUps()
		{
			method_8("DestroyAllPopUps");
		}

		public void DestroyOtherNotifications(Notification.SpeechBubbleDirection direction)
		{
			method_8("DestroyOtherNotifications", direction);
		}

		public void DestroyNotification(Notification notification, float delaySeconds)
		{
			method_8("DestroyNotification", notification, delaySeconds);
		}

		public void DestroySpeechBubble(Notification notification, float delaySeconds)
		{
			method_8("DestroySpeechBubble", notification, delaySeconds);
		}

		public void DestroyNotificationWithText(string text, float delaySeconds)
		{
			method_8("DestroyNotificationWithText", text, delaySeconds);
		}

		public void ClickNotification(UIEvent e)
		{
			method_8("ClickNotification", e);
		}

		public void DestroyAllNotificationsNowWithNoAnim()
		{
			method_8("DestroyAllNotificationsNowWithNoAnim");
		}

		public void DestroyActiveQuote(float delaySeconds, bool ignoreAudio)
		{
			method_8("DestroyActiveQuote", delaySeconds, ignoreAudio);
		}

		public void DestroyNotificationNowWithNoAnim(Notification notification)
		{
			method_8("DestroyNotificationNowWithNoAnim", notification);
		}

		public void NukeNotification(Notification notification)
		{
			method_8("NukeNotification", notification);
		}

		public void NukeNotificationWithoutPlayingAnim(Notification notification)
		{
			method_8("NukeNotificationWithoutPlayingAnim", notification);
		}

		public void NukeSpeechBubble(Notification notification)
		{
			method_8("NukeSpeechBubble", notification);
		}
	}
}
